Real-time conversations between conversation participants via their computer systems are becoming increasingly common. Such real-time conversation requires that the participants be present at their computer systems (e.g., personal digital assistants) and able to respond when a communication is received. A common form of real-time conversation is provided by instant messaging services. An instant messaging service allows participants to send messages and have them received within a second or two by the other participants in the conversation. The receiving participants can then send responsive messages to the other participants in a similar manner. To be effective, a real-time conversation relies on the participants' becoming aware of, reviewing, and responding to received messages very quickly. This quick response is in contrast to conventional electronic mail systems in which the recipients of electronic mail messages respond to messages at their convenience.
When an initiating participant wants to start a real-time conversation, that participant needs to know whether the intended participants are available to respond in real time to a message. If not, then communications via conventional electronic mail, voice mail, or some other mechanism may be more appropriate. For example, if the computers of the intended participants are currently powered off, then a real-time conversation may not be possible. Moreover, if their computers are currently powered on, but the intended participants are away from their computers, a real-time conversation is also not possible. The initiating participant would like to know the availability of the intended participants so that an appropriate decision on the form of communication can be made.
The availability status of an entity such as a computer system or a user associated with that computer system is referred to as “presence information.” Presence information identifies the current “presence state” of the user. Users make their presence information available so that other users can decide how best to communicate with them. For example, the presence information may indicate whether a user is logged on (“online”) with an instant messaging service or is logged off (“offline”). Presence information may also provide more detailed information about the availability of the user. For example, even though a user is online, that user may be away from their computer in a meeting. In such a case, the presence state may indicate “online” and “in a meeting.”
In an instant messaging context, a publishing user (“publisher”) may provide their presence information to a presence server that then provides the presence information to subscribing users (“subscribers”). Thus, a presence server may use a subscriber/publisher model to provide the presence information for the users of the presence service. Whenever the presence information of a user changes, the presence server is notified of the change by that user's computer system and in turn notifies the subscribing users of the change. A subscribing user can then decide whether to initiate an instant messaging conversation based on the presence information of the intended participants. For example, if the presence information indicates that a publishing user is currently in a conference telephone call, then the subscribing user may decide to send an instant message, rather than place a telephone call, to the publishing user. If the subscribing user, however, needs to call and speak with the publishing user, the subscribing user needs to monitor the presence information of the publishing user to know when the call can be placed. When the subscribing user notices that the publishing user's presence information indicates that the telephone conference has been concluded, the subscribing user can then place the telephone call.
Although presence information is available to subscribing computer systems so that decisions can be made about the appropriate form of communication, presence information is not available to devices that cannot or do not subscribe to presence information. For example, when a person wants to place a telephone call, the person may not know the current location of the person to be called because the person is not near a computer system or the person to be called will not allow the calling person to subscribe to their presence information. As a result, the calling person may try calling several different telephone numbers before locating the called person. Although some systems attempt to address the problem of having to call multiple telephone numbers, those systems have various disadvantages. For example, one system allows a person to have a primary telephone number and to forward calls received on the primary telephone number to other secondary telephone numbers. A disadvantage of such a system is that the person needs to manually forward the calls and needs to remember to forward the calls as the person moves from place to place. Another system allows a person to have a primary telephone number and other secondary telephone numbers. When a call is received on the primary telephone number, the system may sequentially call each secondary telephone number until a call is answered or may simultaneously call the secondary telephone numbers. When a user answers one of the simultaneously placed calls, then the system drops the other calls. A disadvantage of the sequential approach is that it may take a while to sequentially call each secondary telephone number and the calling person needs to wait. A disadvantage of the simultaneous approach is that extra telephone lines are needed to place the simultaneous calls.
Computer systems (and other devices) are increasingly being used to render audio. When a telephone call is received at a telephone near the computer system that is rendering audio, it may be difficult (especially when on a speaker phone) for the user to conduct the telephone conversation because of the volume of the audio. A user typically will try to mute the audio before the call is answered. It may, however, be difficult for the user to find the appropriate user interface for muting the audio. Indeed, the calling person may hang up or be directed to voice mail before the called person can mute the audio and answer the call.
It would be desirable to have a mechanism that would allow a telephone call to be automatically forwarded to a telephone where the called person is currently located. Also, it would be desirable to have a mechanism that would help solve the problem of audio being rendered during a telephone call.